Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Лабіринт

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2007
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Програмування
Група:
КІ-24

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт Про виконання лабораторної роботи № 3 з програмування Тема: Лабіринт . Мета:Навчитися реалізовувати програму проходження матриць. Завдання: 28. Матриця розміру N*M визначає деякий лабіринт. B матриці елемент 1 означає стіну, а 0 означає вільне місце. В першому рядку матриці визначаються входи x(і), а в останньому виходи y(і), і=1,..,k, що повинні бути нульовими елементами. Рух у лабіринті здійснюється тільки по вертикалі або горизонталі. Визначити, чи можна : а) провести людину через лабіринт від заданого входу в лабіринт до заданого виходу; б) провести k людина від входу x(і) до виходу y(і) відповідно, і=1,..,k, таким чином, щоб кожне вільне місце відвідувалось не більше одного разу; в) те ж, але людину можна виводити через кожний з виходів. повідомляти користувача. Програма #include <stdio.h> #include <string.h> #include <conio.h> #include <stdlib.h> #include <windows.h> #include <assert.h> struct node { int data; char ch; struct node *next; }; typedef struct node *list; int k=0; //³í³ö³àî³çàö³ÿ void Init(list *head_list_ptr) { *head_list_ptr = NULL; return; } // ïåðåâ³ðêà ÷è ñïèñîê ïîðîæí³é int Empty(list head_list) { return head_list == NULL; } //Äîäàâàííÿ â ê³íåöü ñïèñêó void AddEnd(list *head_list_ptr,int new_data,char new_ch ) { list new_node; list new_node1=*head_list_ptr; new_node = malloc(sizeof(struct node)); new_node->data = new_data; new_node->ch =new_ch; new_node->next = NULL; if (Empty(*head_list_ptr)) *head_list_ptr = new_node; else { if(new_node1)while (new_node1->next) new_node1 =new_node1->next ; new_node1->next = new_node; //FindLast(*head_list_ptr)->next = new_node; //new_node1=FindLast(*head_list_ptr); //new_node1->next = new_node; } return ; } //Ïîøóê îñòàííüîãî åëåìåíòà ñïèñêó list FindLast(list head_list) { if (head_list) while (head_list->next) head_list = head_list->next; return head_list; } //ïîøóê âóçëà ïåðåä çàäàíèì çíà÷åííÿì list FindBefore(list head_list, list node) { while ((head_list->next != node) && head_list) head_list = head_list->next; return head_list; } list FindAfter(list node) { return node->next; } list Find(list head_list,int search_data) { while ((head_list) && (head_list->data != search_data)) head_list = head_list->next; return head_list; } // Âèëó÷åííÿ çàäàíîãî âóçëà ç³ ñïèñêó void Delete(list *head_list_ptr, list *node_ptr) { list tmp , save_ptr=*node_ptr; assert(*head_list_ptr); assert(*node_ptr); if (*node_ptr == *head_list_ptr) *head_list_ptr = (*head_list_ptr)->next; else if (!((*node_ptr)->next)) { tmp = FindBefore(*head_list_ptr,*node_ptr); tmp->next = NULL; } else { tmp = (*node_ptr)->next; (*node_ptr)->data = tmp->data; (*node_ptr)->next = tmp->next; save_ptr = tmp; }; free(save_ptr); return ; } /****Ôóíêö³ÿ âèâåäåííÿ êèðèëèö³****/ void cyrillic(char* text) { char* x; int l,i,size=sizeof(text); l=strlen(text); x=(char*)malloc(size); for(i=0;i<l;i++) { x[i]=text[i]; if(x[i]=='³')x[i]='i'; if(x[i]=='²')x[i]='I'; } x[i]='\0'; CharToOem(x,x); printf(x); } void fff(char* f,int m,int n) { int i=0,j=0,vh,vuh; cyrillic("\n\tÂâåä³òü âõ³ä\n"); scanf("%d",&vh); cyrillic("\n\tÂâåä³òü âèõ³ä\n"); scanf("%d",&vuh); i=vh; f[i]='0'; if (f[i+n+2]!='1' && f[(n+2)*m+vuh]!='1') { while((i!=vh && j!=0) || (i==vh && j==0)) //|| i!=(n+2)*m+vuh { if(i==(n+2)*m+vuh) break; i= Prohid( f,i,n); j++; } } cyrillic("\n\tÐÅÇÓËÜÒÀÒ\n"); if(i==(n+2)*m+vuh) { f[i]='|'; f[i+n+2]='|'; cyrillic("\n\tÏðîõ³ä º\n"); } else cyrillic("\n\tÏðîõîäó íåìà\n"); for(i=0;i<m+2;i++) { for(j=0;j<n+2;j++) { //x[n*i+j]=x[n*i+j]+ printf("%c",f[(n+2)*i+j]); } printf("\n"); } } ///////////////////////////////////////////////////////////////////////////////// void f11(char* f,int m,int n...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини